The design of integrated circuits usually requires the assistance of computer aided design tools. The automated development of complex integrated circuits, such as application specific integrated circuits (ASICs), is referred to as electronic design automation (EDA). EDA tools are usually software programs that provide instructions to a computer for processing information associated with a circuit design. Usually, input information for an EDA tool includes characteristics and functional attributes of a circuit in varying levels of abstraction (e.g., from functional operation to physical structure). It is often convenient to group various components of complex circuits into a “block” or “cell” that performs a particular function or operation. The cells are combined with one another to obtain a desired integrated circuit design. These cells are often described and included in a cell library of an EDA tool. For example, a cell in the cell library can represent a sequential element (e.g., a flip-flop, a latch, etc.), a combinational logic element (e.g., an AND gate, OR gate, etc.), and any combination thereof.
Cells that include sequential elements are usually assigned timing values that include, for example, delay, setup, and hold values. The actual delay, setup, and hold values for a particular cell are determined by the inherent characteristics of the elements included in that cell. The sequential cell delay, setup, and hold characteristics of a cell directly affect the proper functioning of a circuit containing one or more instances of that cell. During the circuit-design phase, the characteristics of each cell are encoded into a software model of the cell. These models are utilized in determining a variety of design constraints and making a number of design decisions. Because delay, setup, and hold characteristics of the cells are often crucial to the proper functionality of a device, is very important to include the appropriate timing values in the software models.
Timing values for the software models are typically acquired by simulating the cells using simulation software and then selecting conservative values to account for variations that naturally occur in the process of embodying a design into a physical circuit. However, because timing models are built only on timing parameters that are based on simulations, these timing models do not account for such variation. This can be detrimental to the creation of the physical circuits not only in terms of yield, but also optimal design.